package leetcode_600;

import java.util.HashSet;
import java.util.Set;

/**
 *@author 周杨
 *ValidSquare_593 计算四个坐标点围成的多边形是否是正方形
 *describe:用边长判断 AC 22%
 *2018年9月17日 下午1:28:59
 */
public class ValidSquare_593 {
	public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
		Set<Integer> set=new HashSet<Integer>();
        set.add(getDis(p1, p2));
        set.add(getDis(p1, p3));
        set.add(getDis(p1, p4));
        set.add(getDis(p2, p3));
        set.add(getDis(p2, p4));
        set.add(getDis(p3, p4));
        if(!(set.size()==2))
        	return false;
        int min=Integer.MAX_VALUE;
        int max=Integer.MIN_VALUE;
        for(Integer i:set) {
        	min=Math.min(i, min);
        	max=Math.max(max, i);
        }
        return 2*min==max?true:false;
    }
	
	private int getDis(int []n1,int[]n2) {
		return (int) (Math.pow(n1[0]-n2[0], 2)+Math.pow(n1[1]-n2[1], 2));
	}
}
